package cn.thr.ymcc.mapper;

import cn.thr.ymcc.domain.Course;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author thr
 * @since 2023-02-28
 */
@Component
public interface CourseMapper extends BaseMapper<Course> {
    /**
     * 批量保存课程与讲师中间表的数据
     * mapper层 不能出现多个参数，最多只支持一个参数，因为insert,update,delete,select标签只有一个parmaeterTy属性
     * 如果非要传多个参数
     * 1.可以先在service层，封装一个实体类对象传进来
     * 2.可以先在service层，封装一个HashMap对象进来
     * 3.可以在mapper 层方法参数前面加 @Param，他的作用就是将方法封装成HashMap
     * @param courseId
     * @param teacharIds
     */
    void insertBatchCourseTeacher(@Param("courseId") Long courseId, @Param("teacharIds") List<Long> teacharIds);

    /**
     * 根据课程id查询该课程的所有讲师id
     * @param courseId
     * @return
     */
    List<Long> selectCourseTeacherIds(Long courseId);
}
